--
-- Created by IntelliJ IDEA.
-- User: bruce
-- Date: 2021/3/3
-- Time: 上午11:26
-- To change this template use File | Settings | File Templates.
-- 自增序列
--

-- 获取key
local seqKey = KEYS[1]
-- 最大id
local maxId = tonumber(ARGV[1])

-- 根据key从redis中获取数据
local currentSeq = tonumber(redis.call('get', seqKey) or '0')
-- 检验是否超出限制大小，超出返回
if currentSeq + 1 > maxId then
    redis.call('INCRBY', seqKey, 1 - maxId)
    return 0;
else
    -- 未超出，redis自增加1并
    redis.call('INCRBY', seqKey, 1)
    -- 返回值
    return currentSeq;
end

